#ifndef IO_SERVICE_CONFIG_H
#define IO_SERVICE_CONFIG_H
#include "utils/property/property.h"
#include "io_filter_chain.h"

namespace vpm
{
	namespace mina
	{
		using namespace vpm::utils;

		class IoServiceConfig
		{
		public:

			inline IoFilterChain & get_event_chain()
			{
				return m_evtFilterChain;
			}

			inline IoFilterChain & get_input_chain()
			{
				return m_inFilterChain;
			}

			inline IoFilterChain & get_output_chain()
			{
				return m_outFilterChain;
			}

		private:
			//the chain should be same for all session in one service, but should be shared in every session
			IoFilterChain m_evtFilterChain; //event filter chain, fo event process , like connection setup , tear down ,etc. 
			IoFilterChain m_inFilterChain;    //in chain , for input data flow 
			IoFilterChain m_outFilterChain;   //out chain, for output data flow
		};

	}
}
#endif // IO_SERVICE_CONFIG_H 


